.TH "PAPI_set_cmp_domain" 3 "Thu Dec 14 2023" "Version 7.1.0.0" "PAPI" \" -*- nroff -*-
.ad l
.nh
.SH NAME
PAPI_set_cmp_domain \- Set the default counting domain for new event sets bound to the specified component\&.  

.SH SYNOPSIS
.br
.PP
.SH "Detailed Description"
.PP 

.PP
\fBC Prototype:\fP
.RS 4
#include <\fBpapi\&.h\fP> 
.br
 int \fBPAPI_set_cmp_domain( int domain, int  cidx )\fP;
.RE
.PP
\fBParameters\fP
.RS 4
\fIdomain\fP one of the following constants as defined in the \fBpapi\&.h\fP header file 
.PD 0

.IP "\(bu" 2
PAPI_DOM_USER User context counted 
.IP "\(bu" 2
PAPI_DOM_KERNEL Kernel/OS context counted 
.IP "\(bu" 2
PAPI_DOM_OTHER Exception/transient mode counted 
.IP "\(bu" 2
PAPI_DOM_SUPERVISOR Supervisor/hypervisor context counted 
.IP "\(bu" 2
PAPI_DOM_ALL All above contexts counted 
.IP "\(bu" 2
PAPI_DOM_MIN The smallest available context 
.IP "\(bu" 2
PAPI_DOM_MAX The largest available context 
.IP "\(bu" 2
PAPI_DOM_HWSPEC Something other than CPU like stuff\&. Individual components can decode low order bits for more meaning
.PP
.br
\fIcidx\fP An integer identifier for a component\&. By convention, component 0 is always the cpu component\&.  
    
.RE
.PP
\fBReturn values\fP
.RS 4
\fIPAPI_OK\fP 
.br
\fIPAPI_EINVAL\fP One or more of the arguments is invalid\&. 
.br
\fIPAPI_ENOCMP\fP The argument cidx is not a valid component\&.  
    
.RE
.PP
\fBPAPI_set_cmp_domain\fP sets the default counting domain for all new event sets in all threads, and requires an explicit component argument\&. Event sets that are already in existence are not affected\&. To change the domain of an existing event set, please see \fBPAPI_set_opt\fP\&. The reader should note that the domain of an event set affects only the mode in which the counter continues to run\&. Counts are still aggregated for the current process, and not for any other processes in the system\&. Thus when requesting PAPI_DOM_KERNEL , the user is asking for events that occur on behalf of the process, inside the kernel\&.
.PP
\fBExample:\fP
.RS 4

.PP
.nf
int ret;

// Initialize the library
ret = PAPI_library_init(PAPI_VER_CURRENT);
if (ret > 0 && ret != PAPI_VER_CURRENT) {
  fprintf(stderr,"PAPI library version mismatch!\\n");
  exit(1); 
}
if (ret < 0) handle_error(ret);

// Set the default domain for the cpu component
ret = PAPI_set_cmp_domain(PAPI_DOM_KERNEL,0);
if (ret != PAPI_OK) handle_error(ret);
ret = PAPI_create_eventset(&EventSet);
if (ret != PAPI_OK) handle_error(ret);

.fi
.PP
.RE
.PP
\fBSee also\fP
.RS 4
\fBPAPI_set_domain\fP \fBPAPI_set_granularity\fP \fBPAPI_set_opt\fP \fBPAPI_get_opt\fP 
.RE
.PP


.SH "Author"
.PP 
Generated automatically by Doxygen for PAPI from the source code\&.
